import HTTP from '@/libs/http'
// 在线情况统计
class OnlineApi extends HTTP {
  /**
   * @description: 在线统计
   * @author lsr
   * @date 2021.03.26
   */
  count({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/supervise/online',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description: 事件类型统计
   * @author lsr
   * @date 2021.03.26
   */
  getEventType({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/supervise/type',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description: 行政区划树
   * @author lsr
   * @date 2021.03.26
   */
  queryRegion({ regionCode, communityRegion }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/all_event/queryRegion',
      params: {
        regionCode,
        communityRegion
      }
    })
  }

  /**
   * @description: 事件状态
   * @author lsr
   * @date 2021.03.26
   */
  adminInit() {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/all_event/adminInit'
    })
  }

  /**
   * @description: 异常处置
   * @author lsr
   * @date 2021.03.26
   */
  abnormal({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/supervise/abnormal',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description: 督办详情
   * @author lsr
   * @date 2021.03.26
   */
  superviseDetail({ eventCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-activiti/all_event/superviseDetail',
      params: {
        eventCode
      }
    })
  }

  /**
   * @description: 周边人员力量
   * @author lsr
   * @date 2021.03.26
   */
  around({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/supervise/around',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description: 督办
   * @author lsr
   * @date 2021.03.24
   * @param {String} personCode       人员编码
   * @param {String} residentType     人口管理类型
   * @param {String} personImage      图片url
   * @param {String} personName       姓名
   * @param {String} formerName       曾用名
   * @param {String} idType           证件类型
   * @param {String} idCard           证件号码
   * @param {String} sex              性别
   * @param {String} nationality      民族
   * @param {String} birthPlace       籍贯
   */
  supervise({ recordType, button, eventCode, superviseReplyDate, isShortNote, visitRecord }) {
    return this.request({
      method: 'PUT',
      url: '/smart/smart-activiti/all_event/supervise',
      data: {
        recordType,
        button,
        eventCode,
        superviseReplyDate,
        isShortNote,
        visitRecord
      }
    })
  }
}
class RecordApi extends HTTP {
  /**
   * @description: 督办信息
   * @author lsr
   * @date 2021.03.17
   * @param {String} queryType 记录类型 1：已督办事件  2：未督办事件
   * @param {String} isReply 数据类型 1：已回复 2：未回复 3：督办超时
   * @param {String} superviseTimeOut 督办是否超时 1：是 2：否
   * @param {Int} recordSize 开始下标（第一条数据的下标为0）
   * @param {Int} pageSize 每页显示条数
   */
  list({
    queryType,
    isReply,
    recordSize,
    pageSize,
    regionCode,
    departmentCode,
    superviseTimeOut,
    isSupervising,
    eventStatus,
    communityRegion,
    eventType,
    reportBeginTime,
    reportEndTime
  }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-activiti/all_event/appsupervise',
      params: {
        queryType,
        isReply,
        recordSize,
        pageSize,
        regionCode,
        departmentCode,
        superviseTimeOut,
        isSupervising,
        eventStatus,
        communityRegion,
        eventType,
        reportBeginTime,
        reportEndTime
      }
    })
  }

  /**
   * @description: 未督办详情
   * @author lsr
   * @date 2021.03.26
   */
  detail({ eventCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/all_event/detail',
      params: {
        eventCode
      }
    })
  }

  /**
   * @description: 事件点位
   * @author cx
   * @date 2021.11.18
   * @param longitude1 经度1
   * @param longitude2 经度2
   * @param latitude1 维度1
   * @param latitude2 维度2
   * @param eventStatus 事件状态
   * @param communityRegion 社区code
   * @param eventType 事件类型
   * @param reportBeginTime 上报开始时间
   * @param reportEndTime 上报结束时间
   */
  eventLocation({
    longitude1,
    longitude2,
    latitude1,
    latitude2,
    eventStatus,
    communityRegion,
    eventType,
    reportBeginTime,
    reportEndTime
  }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-activiti/all_event/location',
      params: {
        longitude1,
        longitude2,
        latitude1,
        latitude2,
        eventStatus,
        communityRegion,
        eventType,
        reportBeginTime,
        reportEndTime
      }
    })
  }

  /**
   * @description: 周边网格员
   * @author cx
   * @date 2021.11.18
   * @param longitude 经度
   * @param latitude 维度
   */
  surroundingGirdPerson({ longitude, latitude }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/supervise/surroundingGirdPerson',
      params: {
        longitude,
        latitude
      }
    })
  }

  /**
   * @description: gridPersonCode
   * @author: cx
   * @date: 2021.10.29
   * @param {String} gridPersonCode 网格员code
   */
  girdPersonDetail({ gridPersonCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/user/gridDetail',
      params: {
        gridPersonCode
      }
    })
  }
}

class UrbanApi extends HTTP {
  /**
   * @description:  实有人口
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  personTotal({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/monitor/person/total',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:  重点人员总数
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  keyPerson({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/monitor/key/person',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:   网格建设概览
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  gridOverview({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/monitor/grid/overview',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:   基础建设概览
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  baseOverview({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/monitor/base/overview',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:  非公有制经济组织查询
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  organization({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/monitor/organization',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:  社会组织
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  social({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/monitor/social',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:   事件来源概览
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  origin({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/monitor/event/origin',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:   事件类型TOP5 雷达图
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  radar({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/monitor/event/radar',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:  实时事件统计
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  actual({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/monitor/event/actual',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:  事件概况
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  overview({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/monitor/event/overview',
      params: {
        regionCode
      }
    })
  }
}
class AnalyseApi extends HTTP {
  /**
   * @description:  领导驾驶舱辖区党建分析--党员统计
   * @author: llx
   * @date: 2021.11.18
   * @param {String} regionCode  行政区划编码
   */
  persontype({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/party/persontype',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:  领导驾驶舱辖区党建分析--各街道/各社区党员统计
   * @author: llx
   * @date: 2021.11.18
   * @param {String} regionCode  行政区划编码
   */
  personregion({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/party/personregion',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:   领导驾驶舱辖区党建分析--党组织统计
   * @author: llx
   * @date: 2021.11.18
   * @param {String} regionCode  行政区划编码
   */
  organizationtype({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/party/organizationtype',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:   领导驾驶舱辖区党建分析--党组织列表
   * @author: llx
   * @date: 2021.11.18
   * @param {String} regionCode  行政区划编码
   */
  organizationlist({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/party/organizationlist',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:  各街道党组织统计
   * @author: llx
   * @date: 2021.11.18
   * @param {String} regionCode  行政区划编码
   */
  organizationtregion({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/party/organizationtregion',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:  党员列表
   * @author: llx
   * @date: 2021.5.28
   * @param {String} regionCode  行政区划编码
   */
  personlist({ regionCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/party/personlist',
      params: {
        regionCode
      }
    })
  }

  /**
   * @description:   党组织成员列表
   * @author: llx
   * @date: 2021.5.28
   * @param {String} partyOrganizationCode  行政区划编码
   */
  organizationperson({ partyOrganizationCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/party/organizationperson',
      params: {
        partyOrganizationCode
      }
    })
  }

  /**
   * @description:党组织信息
   * @author: llx
   * @date: 2021.5.28
   * @param {String} partyOrganizationCode  编码
   */
  organizationdetail({ partyOrganizationCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/party/organizationdetail',
      params: {
        partyOrganizationCode
      }
    })
  }

  /**
   * @description:  党员信息
   * @author: llx
   * @date: 2021.5.28
   * @param {String} partyPersonCode  行政区划编码
   */
  persondetail({ partyPersonCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/party/persondetail',
      params: {
        partyPersonCode
      }
    })
  }
}
class GridMemberApi extends HTTP {
  /**
   * @description: 列表
   * @author cx
   * @date 2021.11.23
   * @param {String} regionCode 状态
   * @param {Int} recordSize 开始下标（第一条数据的下标为0）
   * @param {Int} pageSize 每页显示条数
   */
  list({ regionCode, recordSize, pageSize }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/taskplan/gridPerson',
      params: {
        regionCode,
        recordSize,
        pageSize
      }
    })
  }

  /**
   * @description: 详情
   * @author cx
   * @date 2021.11.23
   * @param {String} gridPersonCode 网格员编码
   */
  detail({ gridPersonCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/user/gridDetail',
      params: {
        gridPersonCode
      }
    })
  }

  /**
   * @description: 网格巡查记录列表
   * @author cxm
   * @date 2021.12.14
   * @param {Int} type 类型
   * @param {String} gridCode 网格编码
   * @param {String} appCode
   * @param {String} inspectionPointCode
   * @param {String} startTime
   * @param {String} endTime
   */
  gridList({ type, gridCode, appCode, inspectionPointCode, startTime, endTime }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/grid/inspection_day_list',
      params: {
        type,
        gridCode,
        appCode,
        inspectionPointCode,
        startTime,
        endTime
      }
    })
  }

  /**
   * @description: 网格巡查记录列表
   * @author cxm
   * @date 2021.12.14
   * @param {String} gridCode 网格编码
   * @param {String} date
   */
  gridDetail({ gridCode, date }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/grid/inspection_list',
      params: {
        gridCode,
        date
      }
    })
  }

  /**
   * @description: 单位巡查记录列表
   * @author cxm
   * @date 2021.12.14
   * @param {String} gridCode 网格编码
   * @param {String} appCode
   * @param {String} companyType 网格编码
   * @param {String} inspectionResult
   * @param {String} companyCode
   * @param {String} startTime
   * @param {String} endTime
   */
  companyList({ gridCode, appCode, companyType, inspectionResult, companyCode, startTime, endTime }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/company/record_list',
      params: {
        gridCode,
        appCode,
        companyType,
        inspectionResult,
        companyCode,
        startTime,
        endTime
      }
    })
  }

  /**
   * @description: 走访人员巡查记录列表
   * @author cxm
   * @date 2021.12.14
   * @param {String} regionCode
   * @param {String} appCode
   * @param {String} name
   * @param {String} phone
   * @param {String} startTime
   * @param {String} endTime
   * @param {String} type
   * @param {String} interviewee
   * @param {String} labelName
   * @param {Int} recordSize 开始下标（第一条数据的下标为0）
   * @param {Int} pageSize 每页显示条数
   */
  personList({
    regionCode,
    appCode,
    name,
    phone,
    startTime,
    endTime,
    type,
    interviewee,
    labelName,
    pageSize,
    recordSize
  }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app-base/inspection/person_list',
      params: {
        regionCode,
        appCode,
        name,
        phone,
        startTime,
        endTime,
        type,
        interviewee,
        labelName,
        pageSize,
        recordSize
      }
    })
  }

  /**
   * @description: 单位巡查记录列表
   * @author cxm
   * @date 2021.12.14
   * @param {String} code
   */
  personDetail({ code }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app-base/inspection/person_detail',
      params: {
        code
      }
    })
  }
}

class ResidentClass {
  constructor() {
    this.Online = new OnlineApi()
    this.Record = new RecordApi()
    this.Urban = new UrbanApi()
    this.Analyse = new AnalyseApi()
    this.GridMember = new GridMemberApi()
  }
}

const Resident = new ResidentClass()

export default Resident
